
/**
 * 前台元素分页工具
 * @returns 
 */

var PagingTools = function() {

	"use strict";// 严格模式

	/** 用用于存储exGrid 对象，以方便工具类调用表格的行为 */
	var tableMap = {};

	return {

		/** 添加一个exGrid */
		addTable : function(exGrid) {
			tableMap[exGrid.tableAttr.tId] = exGrid;
		},
		/** 获取一个exGrid */
		getTable : function(tId) {
			return tableMap[tId];
		},

		
		/** 分页组件 */
		paging : function(exGrid) {
			

			var rowCount = exGrid.tableAttr.rowCount;
			var pageCount = parseInt(exGrid.tableAttr.pageCount);
			var pageNow = exGrid.tableAttr.pageNow;
			var tId = exGrid.tableAttr.tId;

			var html = '<span><span>共 ' + rowCount + ' 条记录 </span> &nbsp&nbsp共'
					+ pageCount + '页/当前第' + pageNow + '页</span>&nbsp&nbsp';
			if (pageNow == 1) {
				html += '<a class="btn btn-primary size-S mr-5" onclick="javascript:void(0)" >上一页</a>';
			} else {
				html += '<a class="btn btn-primary size-S mr-5"  onclick="PagingTools.changePage(\''
						+ tId + '\',' + (pageNow - 1) + ')"  >上一页</a>';
			}
			var begin = 0;
			var end = 0;

			if (pageCount <= 6) {
				begin = 1;
				end = pageCount;
			} else {
				begin = pageNow - 2;
				end = pageNow + 3;
				if (begin < 1) {
					begin = 1;
					end = 6;
				}
				if (end > pageCount) {
					begin = pageCount - 5;
					end = pageCount;
				}
			}
			if (pageNow > 3) {
				html += '<a class="btn btn-default size-S mr-5" onclick="PagingTools.changePage(\''
						+ tId + '\',' + 1 + ')" >首页</a>';
			}
			for (var i = begin; i <= end; i++) {

				if (pageNow == i) {
					html += '<a class="btn btn-p+-+rimary size-S mr-5" onclick="javascript:void(0)" >'
							+ i + '</a>';
				} else {
					html += '<a class="btn btn-default size-S mr-5" onclick="PagingTools.changePage(\''
							+ tId + '\',' + i + ')">' + i + '</a>';
				}

			}
			if (end < pageCount) {
				html += '<a class="btn btn-default size-S mr-5" onclick="PagingTools.changePage(\''
						+ tId + '\',' + pageCount + ')">尾页</a>';
			}

			if (pageNow == pageCount) {
				html += '<a class="btn btn-primary size-S mr-5"  onclick="javascript:void(0)">下一页</a>';
			} else {

				html += '<a class="btn btn-primary size-S mr-5" onclick="PagingTools.changePage(\''
						+ tId + '\',' + (pageNow + 1) + ')" >下一页</a>';
			}
			console.log(exGrid.jtable);
			exGrid.jtable.find(".pagingBox").empty().html(html);
		},
		/** 改变pageNow */
		changePage : function(tId, pageNow) {
			tableMap[tId].tableAttr.pageNow = pageNow;
			tableMap[tId].serchData(tId);
		},
		/** 改变pageSize */
		changeSize : function(tId, select) {
			tableMap[tId].tableAttr.pageSize = select.value;
			tableMap[tId].tableAttr.pageNow = 1;
			tableMap[tId].serchData(tId);
		}
		
	}
}();



function Paging() {

	return {
		/** 初始化表格参数 */
		initGrid : function(initparam) {
			_this = this;
			_this.tableAttr = $.extend(_this.tableAttr, initparam);
			_this.jtable = $("#" + _this.tableAttr.tId);
			// 绑定serch按钮的serch方法
			PagingTools.addTable(_this);
			_this.jtable.find(".EXSerchBtn").click(function() {
				_this.serchData(_this.tableAttr.tId);
			});
			return _this;
		},
		// 表格搜索搜索参数
		serchParame : {},
		// 最外层的表格对象
		jtable : {},
		tableData : {},
		tableAttr : {
			pageNow : 1,
			pageSize : 10,
			tId : "EXdataTable", // 默认表格id
			serchFormId : "serchForm", // 默认搜索表单id
			pageCount : 0,
			rowCount : 0,
			budinRow : null, // 构建行的函数
			afterBudin : null,// 在行数据加载之后执行的函数
			reflashSerchData : null, // 返回要传到服务器去的参数 注意次序
			dataUrl : "", // 数据加载的地址
			a : true,// 异步加载
			c : true
		// 是否开启遮罩
		},
		/** 调用 当前表格的搜索方法 */
		serchData : function(tId) {
			var exGrid = PagingTools.getTable(tId);
			exGrid.serchParame['pageSize'] = exGrid.tableAttr.pageSize;
			exGrid.serchParame['pageNow'] = exGrid.tableAttr.pageNow;
			var serchData ={};
			if(exGrid.tableAttr.reflashSerchData){
				serchData = exGrid.tableAttr.reflashSerchData(); // 调外部传递进来的构建参数方法	
			}else{
				serchData=EXForm.toJson("#"+exGrid.tableAttr.serchFormId);
			}
			exGrid.serchParame = $.extend(exGrid.serchParame, serchData);
			exGrid.loaDData();
		},

		/** 加载表格数据 */
		loaDData : function() {
			var _this = this;
			// 第一次需要初始化搜索参数
			if (!_this.serchParame['pageSize']) {
				_this.serchData(_this.tableAttr.tId);
				return;
			}
			$.AjaxProxy({
				p : _this.serchParame,
				a : _this.tableAttr.a,
				c : _this.tableAttr.c
			}).invoke(_this.tableAttr.dataUrl, function(loj) {
				_this.tableData = loj.attr("result").dataList;
				// 加载数据
				var html=_this.tableAttr.budinRow(loj);
				if(html==""){
					html="<div class='text-c f-20 c-primary'><i class='fa fa-hdd-o'></i> 没有数据</div>"
				}
				_this.jtable.find(".data").html(html);
				_this.tableAttr.pageCount = loj.getValue('pageCount');
				_this.tableAttr.rowCount = loj.getValue('totalRecold');
				// 加载分页
				PagingTools.paging(_this);
				// 表格加载完后执行的函数
				if (_this.tableAttr.afterBudin) {
					_this.tableAttr.afterBudin();
				}
			});
		}

	}
}
